﻿using Abp.Application.Services.Dto;
using Mt.Site.Application.Dto;
using Mt.Site.Application.Members.BackEnd.Dto;
using System;
using System.Threading.Tasks;

namespace Mt.Site.Application.Members.BackEnd
{
    //会员
    public interface IMemberAppService:IBackEndAppService
    {
        /// <summary>
        /// 获取分页会员列表
        /// </summary>
        /// <param name="input">分页类</param>
        /// <returns>分页信息</returns>
        Task<PagedResultDto<PageMembersOut>> GetPagedMembers(PageMemberInput input);

        Task DeleteMemberAsync(DeleteMemberInput input);

        /// <summary>
        /// 重置密码
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task ResetPassword(ResetMemberPasswordInput input);

        /// <summary>
        /// 更新会员信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateMemberAsync(MemberInput input);

        /// <summary>
        /// 更新会员具体信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateMemberInfoAsync(MemberInfoInput input);

        /// <summary>
        /// 更新会员具体信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<MemberInfoOut> GetMemberInfoAsync(EntityDto<Guid> input);

        /// <summary>
        /// 更新会员信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<MemberOut> GetMemberAsync(EntityDto<Guid> input);

        Task UpdateMemberState(MemberStateInput input);

        Task<FileDto> DataExport(ExportList input);
    }
}
